iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
佛心分享-IT 人自學之術

自學swift語法系列 第 29

Day29-Enum 介紹 & 相關常用 Protocol

  • 分享至 

  • xImage
  •  

Enum是一個可以被「列舉」所有實例的類型。

布林

  • 只有兩種可能。
  • 只有兩種可能,所以可以有效率的用 0 和 1 來管理。
  • 只有兩種可能,所以可以掌握程式的每種發展,沒有「無法預期」的情況。

Enum

  • 建立時需列舉出所有選項。
  • 可以 conforms to protocol、可以有靜態屬性也可以有方法。
  • 沒有儲存屬性,但有 Associated Value,可以存取的方式不同。
  • 是 Value Type。

Hashable

  • 沒有 associated value 的 enum 預設就是 Hashable 的。
  • 如果有 associated value,必須自己明確寫出「Hashable」。如果裡面的每一個值都是 Hashable 的話會自動提供 hash 方法。

RawRepresentable

  • 這個 protocol 代表可以在這個類型本身跟 之間來回轉換。

直接為 enum 宣告 RawValue

  • enum 提供快速串接 String、int、Float 或 Double 作為 RawValue 的宣告方法。

提供自訂 rawValue

  • 在 case 後方賦予(覆蓋預設) rawValue。

Caselterable

  • 一個知道怎麼 loop 自己全部的實例類型。
  • 沒有任何 associated value 的 enum 可以直接 conform。
  1. 什麼時候適合用 enum?
    => 當可以明確列出所有實例的時候。
  2. Enum 可以有實例屬性嗎?
    => 只能有計算屬性,不能有儲存屬性。
  3. 如何存取 enum 中的 associated value?
    => 需要先確認 enum 是哪一個 case 後拆解出 associated value。

影片連結:https://youtu.be/hRJw83s6bIg?si=uvySm5Vskl9VL597


上一篇
Day28-屬性包裝 Property Wrapper 介紹
下一篇
Day30-Optional 介紹 & 所有相關簡寫語法:?? ! .? & guard let & if let 語法
系列文
自學swift語法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言